
c*+*+*+*+*+*
c     This program was produced by the	ATOMCC	translator version 7.10
c					Copyright (C) 1985, Y. F. Chang
c*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
c Portions (c) Copyright, Microsoft Corp., 1981.  All rights reserved.
c This program was written for the following inputs
c
C FIRST PAINLEVE TRANSCENDENT
C     DIFF(Y,T,2) = 6.0*Y*Y + T
c--------
c no instructions in second input block
c--------
      COMMON /IPASS/ LENSER,LENVAR,MPRINT,MSTIFF,LRUN,
     + KTRDCV,KNTSTP,KTSTIF,KXPNUM,KDIGS,KENDFG,NTERMS,NOPT
     A /RPASS/ RADIUS,ERRLIM,ADJSTF,RCREAL,RCIMAG,RDCERR
     B /CPASS/ START,END,ORDER
     C /DPASS/ H,HNEW,XPRINT,DLTXPT
      DIMENSION TMPS(  36,  1)
      CHARACTER*6 NAMES
      EQUIVALENCE (TMPS(1,1),Y(1))
      DIMENSION NAMES(1), Y(36), T(2), TMPAAB(30), TMPAAA(30)
      DATA NAMES(1)/'Y.....'/
      Y(33) = 1.1
   10 FORMAT(72H   ATOMCC  Ver. 7.10, Copyright (C) 1985, Y. F. Chang; S
     Aolution results./9H   ******)
   11 FORMAT(/5X,11HStep number,I6,13H at the point,1P1E12.4/1X,
     A 9Hvalues of )
   12 FORMAT(1X, A6,(1X,1P4E13. 5))
   13 FORMAT(5X,21HStepsize adjusted to ,1PE13.5)
   14 FORMAT(/5X,35HThe solution stopped normally after, I4,24H steps as
     a set by nsteps. )
   16 FORMAT(/5X,63HThe adjustment for stepsize seems to be in a loop. P
     Alease try a /5X,22Hshorter series length. )
      WRITE(*,10)
c--------
c Initialize variables to default values.
c--------
      NSTEPS = 40
      H = 1.E0
      ERRLIM = 1.E- 6
      LENSER = 30
      MPRINT = 4
      NTERMS = 2
      KTRDCV =	1
      ADJSTF = 1.E-2
      MSTIFF =	0
      DLTXPT = 0.E0
c--------
c start of third  input block
c--------
C READ INTEGRATION INTERVAL AND INITIAL CONDITIONS.
      READ(5,1010) START,END,Y(1),Y(2)
 1010 FORMAT(4F10.3)
      WRITE(*,1020) START,END,Y(1),Y(2)
 1020 FORMAT(' SOLVE THE FIRST PAINLEVE TRANSCENDENT' /
     + ' INTERVAL:          ',2F10.3 /
     + ' INITIAL CONDITIONS:',2F10.3 /)
c--------
c end of third	input block
c--------
c More initializations
c--------
      DLTXPT = SIGN(DLTXPT,(END-START))
      H = SIGN(H,(END-START))
      KDIGS =  6
      XPRINT = START + DLTXPT
      KXPNUM = 35
      LENVAR = 36
      LRUN = 1
      KTSTIF = 0
      NUMEQS =	 1
      IF(LENSER.GT.(LENVAR- 6)) LENSER = LENVAR -  6
      IF(MPRINT.LT.2) GO TO 17
      WRITE(*,11) KTSTIF,START
	 K = Y(33)
	 WRITE(*,12) NAMES(K),Y(1), Y(2)
c--------
c Loop for integration steps.  Inside the loop, print the desired output
c--------
   17 DO 27 KINTS=1,NSTEPS
	 KOUNT = 0
	 KNTSTP = KINTS
   19	 CONTINUE
	 T(1) = START
	 T(2) = H
	 Y(2) = Y(2)*(H)
c--------
c Preliminary series calculations
c--------
	 TMPAAA(1) = 6.E0*Y(1)
	 TMPAAB(1) = TMPAAA(1)*Y(1)
	 Y(3) = (TMPAAB(1) + T(1))*(H*H/2.E0)
	 TMPAAA(2) = 6.E0*Y(2)
	 TMPAAB(2) = TMPAAA(1)*Y(2) + TMPAAA(2)*Y(1)
	 Y(4) = (TMPAAB(2) + T(2))*(H*H/6.E0)
c--------
c Loop for series calculations
c--------
	 DO 23 K= 5,LENSER
	    KA = K - 1
	    KB = K - 2
	    TMPAAA(KB) = 6.E0*Y(KB)
	    TMPAAB(KB) = 0.E0
	    KZ = 1 + KB
	    DO 30 N=1, KB
	       L = KZ - N
	       TMPAAB(KB) = TMPAAB(KB) + TMPAAA(N)*Y(L)
   30		 CONTINUE
	    Y(K) = (TMPAAB(KB))*(H*H/(KB*KA))
c--------
c Test and adjust H to avoid over/under flow.
c--------
	    IF(MSTIFF.GE.20 .AND. KTSTIF.GT.0) GO TO 23
	    TMP = ABS(Y(K))
	    IF(TMP.LE.1.E-35) GO TO 23
	    IF(TMP.LT.1.E20 .AND. TMP.GT.1.E-20) GO TO 23
	    IF(KTSTIF.NE.0 .AND. TMP.LT.1.0) GO TO 23
	    KOUNT = KOUNT + 1
	    IF(KOUNT.LT.9) GO TO 22
	    WRITE(*,16)
	    GO TO 28
   22	    CONTINUE
	    Y(2) = Y(2)/(H)
	    H = H * TMP**(0.3/(1-K))
	    IF(MPRINT.GE.4) WRITE(*,13) H
	    GO TO 19
   23	 LRUN = 1
c--------
c Calculate radius of convergence and take optimum step.
c--------
	 CALL RDCV(TMPS,LENVAR,NUMEQS,NAMES)
   24	 CALL RSET(TMPS,LENVAR,NUMEQS,NAMES)
c--------
c no instructions in fourth input block
c--------
   25	 GO TO (26,28,24), KENDFG
   26	 H = SIGN(RADIUS,H)
	 START = START + HNEW
	 IF(MPRINT.LT.4) GO TO 27
	 WRITE(*,11) KNTSTP, START
	 K = Y(33)
	 WRITE(*,12) NAMES(K),Y(1), Y(2)
   27 CONTINUE
      WRITE(*,14) NSTEPS
   28 CONTINUE
   29 STOP
      END
K = Y(33)
	 WRITE(*,12) NAMES(K),Y(1), 